package com.lz.ovuola.util.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;

/**
 * 
 * @author fz
 *
 */
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Cache {

	/**
	 * 使用缓存
	 * 
	 * @return
	 */
	boolean cacheable() default true;

	/**
	 * 支持 秒 分 时 天
	 * 
	 * @return
	 */
	int expiration() default Short.MAX_VALUE;

	/**
	 * 单位
	 * 
	 * @return
	 */
	TimeUnit unit() default TimeUnit.HOURS;
}